package ar.com.gestion.dao;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

import ar.com.gestion.dominio.Producto;
import ar.com.gestion.dominio.Venta;
import ar.com.gestion.rowmapper.ProductoRowMapper;
import ar.com.gestion.rowmapper.VentaRowMapper;

public class VentasDAO {

	private JdbcTemplate jdbcTemplate;
	
	
	public int saveVenta(Venta venta){
		
		String sql = "insert into ventas (" +
				"valor_momento," +
				"fecha," +
				"porcentaje_pago," +
				"pagos," +
				"vendedor_id," +
				"id_cliente,fiado" +
				") values (?,?,?,?,?,?,?)";
		
		int index = jdbcTemplate.update(sql,new Object[]{
				venta.getSaldo(),
				venta.getFecha(),
				venta.getPorcentajePago(),
				venta.getCuotas(),
				venta.getVendedor().getId(),
				venta.getCliente().getIdCliente(),venta.isFiado()});
		
		return jdbcTemplate.queryForInt( "SELECT MAX(id) AS id FROM ventas" );
		
	}
	
	

	public List<Venta> getVentasNoFinalizadas() {
		String sql = "select * from ventas where porcentaje_pago != 100 and fiado = false";
		List<Venta> ventas = jdbcTemplate.query(sql, new VentaRowMapper());
		return ventas; 
		
	}
	

	public  List<Venta> getAllVentasFiado() {
		String sql = "select * from ventas where porcentaje_pago != 100 and fiado = true";
		List<Venta> ventas = jdbcTemplate.query(sql, new VentaRowMapper());
		return ventas;
		
	}

	
	
	
	
	public void actualizarVenta(Venta venta){
		
		String sql = "update ventas set valor_momento=?,fecha=?,porcentaje_pago=?,pagos=?,vendedor_id=?,id_cliente=? where ventas.id = ?";
		jdbcTemplate.update(sql,new Object[]{venta.getSaldo(),venta.getFecha(),venta.getPorcentajePago(),venta.getCuotas(),venta.getVendedor().getId(),venta.getCliente().getIdCliente(),venta.getId()});
		
		
	}
	
	public void actualizarPorcentajeVenta(Venta venta){
		
		String sql ="update ventas set porcentaje_pago=? where ventas.id = ?";
		jdbcTemplate.update(sql,new Object[]{venta.getPorcentajePago(),venta.getId()});
		
		
		
	}
	
	
	
	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}









}
